### Практикум `Классы и объекты`

### 1. Объявите класс с именем `DataBase`, который бы хранил в себе следующую информацию:

```
pk: 1
title: "Классы и объекты"
author: "Иван Иванов"
views: 14356
comments: 12
```

<details>
<summary>Подсказка</summary>

```python
class DataBase:
    pk = 1
    title = "Классы и объекты"
    author =  "Иван Иванов"
    views = 14356
    comments = 12
```

</details>

Создайте два объекта `book1` и `book2` данного класса `DataBase()`

Выведите на экран все атрибуты класса с помощью `__dict__`

> Почему словарь пустой ?
> Почему у экземпляров нет атрибутов?

Измените автор первой книги на `"Тургенев"`
Снова отобразите коллекцию `__dict__` у обоих объектов

> Запоминаем - есть атрибуты класса и локальные атрибуты их экземпляров!

### 2. Объявите класс с именем `Goods` и пропишите в нем следующие атрибуты (переменные):

```
title: "Мороженое"
weight: 154
tp: "Еда"
price: 1024
```

Затем, после объявления класса, измените его атрибут `price` на значение `2048` и добавьте еще один атрибут:

```
inflation: 100
```

<details>
<summary>Подсказка</summary>

```python
class Goods:
    title ="Мороженое"
    weight = 154
    tp = "Еда"
    price = 1024

Goods.price = 2048
setattr(Goods, "inflation", 100)
```

</details>

### 3. Объявите пустой класс с именем `Car`. С помощью функции `setattr()` добавьте в этот класс атрибуты:

```
model: "Тойота"
color: "Розовый"
number: "П111УУ77"
```

Выведите на экран значение атрибута `color`, используя словарь

```python
__dict__ класса Car.

```

<details>
<summary>Подсказка</summary>

```python
class Car:
    pass

setattr(Car, "model", "Тойота")
setattr(Car, "color",  "Розовый")
setattr(Car, "number", "О111АА77")

print (Car.__dict__["color"])
```

</details>

### 4. Объявите класс с именем `Dictionary` и определите в нем следующие атрибуты:

```
rus: "Питон"
eng: "Python"
```

Затем, с помощью функции `getattr()` прочитайте и выведите на экран значение атрибута `rus_word`.

Если такого атрибута в классе нет, то функция `getattr()` должна возвращать булево значение `False`.

<details>
<summary>Подсказка</summary>

```python
class Dictionary:
    rus = "Питон"
    eng = "Python"

print (getattr(Dictionary, "rus_word", False))
```

</details>

### 5. Объявите класс с именем `TravelBlog` и объявите в нем атрибут:

```
total_blogs: 0
```

Создайте экземпляр этого класса с именем `tb1`, сформируйте в нем два локальных свойства:

```
name: 'Франция'
days: 6
```

Увеличьте значение атрибута `total_blogs` класса `TravelBlog` на единицу.

Создайте еще один экземпляр класса `TravelBlog` с именем `tb2`, сформируйте в нем два локальных свойства:

```
name: 'Италия'
days: 5
```

Увеличьте значение атрибута `total_blogs` класса `TravelBlog` еще на единицу.

<details>
<summary>Подсказка</summary>

```python
class TravelBlog:
    total_blogs = 0

tb1 = TravelBlog()
setattr (tb1, "name", 'Франция')
setattr (tb1, "days", 6)

TravelBlog.total_blogs += 1

tb2 = TravelBlog()
setattr (tb2, "name", 'Италия')
setattr (tb2, "days", 5)

TravelBlog.total_blogs +=1
```

</details>

### 6. Объявите класс с именем `Figure` и двумя атрибутами:

```
type_fig: 'ellipse'
color: 'red'
```

Создайте экземпляр с именем `fig1` этого класса и добавьте в него следующие локальные атрибуты:

```
start_pt: (10, 5)
end_pt: (100, 20)
color: 'blue'
```

Удалите из экземпляра класса свойство `color` и выведите на экран список всех локальных свойств (без значений) объекта `fig1` в одну строчку через пробел в порядке, указанном в задании.

<details>
<summary>Подсказка</summary>

```python
class Figure:
    type_fig = 'ellipse'
    color = 'red'

fig1 = Figure()
setattr (fig1, "start_pt", (10, 5))
setattr (fig1, "end_pt", (100, 20))
setattr (fig1, "color", 'blue')

delattr (fig1, 'color')

print (*fig1.__dict__)
```

</details>

### 7. Объявите класс с именем `Person` и атрибутами:

```
name: 'Иван Иванов'
job: 'Программист'
city: 'Москва'
```

Создайте экземпляр `p1` этого класса и проверьте, существует ли у него локальное свойство с именем `job`. Выведите `True`, если оно присутствует в объекте `p1` и `False` - если отсутствует.

<details>
<summary>Подсказка</summary>

```python
class Person:
    name = 'Иван Иванов'
    job = 'Программист'
    city = 'Москва'

p1 = Person()
print ("job" in p1.__dict__ )
```

</details>


